# coding: utf-8

# pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
import pandas as pd

# data = {'apple':1, 'banana':2, 'orange':3}
# s1 = pd.Series(data)
# print(s1)
# print(s1['banana'])
# print(s1.iloc[1])
# print(s1.index)
#
#
# data = {'apple':[1,3,5], 'banana':[2,4,6], 'orange':[3,6,9]}
# s2 = pd.DataFrame(data)
# print(s2)
# print(s2.iloc[1])
# print(s2.columns)

df = pd.read_csv(r'F:\Work\Python\Pandas\study-pandas\file\datas\weather_20230115134249.csv')
print(len(df)) # 统计行数
print(df.head()) # 查看前几行
# print(df.index) # 查看index
# df.set_index('日期', inplace=True)  # 修改index
# print(df.head())
# print(df.index)
# print('type:', df.dtypes)  # 查看df数据类型
# print('describe:', df.describe())  # 查看df数据汇总

# loc既可以取行，也可以取列
# loc:基于标签(名称),闭区间
# iloc:基于位置,左闭右开区间
# print('loc(1)', df.loc(1))
# print('loc[1]:', df.loc[1])
# print('loc[1]:', df.loc[1:3])
# print('iloc[1]:', df.iloc[1])
# print('iloc[1]:', df.iloc[1:3])
# print(df.loc[:, '城市'])  # 所有行的某列
# print(df.loc[2, :])  # 某行的所有列


# 查询数据
# 1. 使用单label查询
# print(df.head())
# print(df.loc[3, '城市'])

# 2. 使用label批量查询
# print(df.head())
# print(df.loc[[1,4], ['城市', '气温(度)']])

# 3. 使用label区间查询
# print(df.head())
# print(df.loc[1:4, '城市': '气温(度)'])  #闭区间

# 4. 使用条件查询，返回结果为True的
print(df['气温(度)']<'10℃')
print(df[df['气温(度)']<'10℃'])
print(df.loc[df['气温(度)']<'10℃',:])

# 5. 自定义查询，返回结果为True的
# print(df.head())
# print(df.loc[lambda df: (df['气温(度)']>'22℃') & (df['气温(度)']<'25℃'),:])
# # 函数式编程： 函数自身可以像变量一样传递
# def query_my_data(df):
#     return df['日期'].str.startswith('2016-03-01')
# print(df.loc[query_my_data])
